package it.pir.es03ChatUDP;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.UnknownHostException;

public class ClientTest {
	
	private static final int PORT = 7777;
	private static Thread mainThread;
	
	public static void main(String[] args) throws UnknownHostException, IOException, ClassNotFoundException {
		final String nickname = args[0];
		String host = args[1];
		BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
		final Client client = new Client(nickname, host, PORT);
		/* Eseguimao il thread che legge in continuazione se arrivano messaggi*/
		
		Thread t = new Thread(client);
		t.start();
		
		/* Uccidiamo il thread se avviene la disconnessione del client e lo comunichiamo al server che lo comunicherà a tutti gli altri*/ 
		mainThread = Thread.currentThread();
		
		Runtime.getRuntime().addShutdownHook(new Thread(){
			public void run(){
				try {
					client.sendMessage(new Message(nickname, "", Message.DEAUTHENTICATION));
					mainThread.interrupt();
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
			
		});
				
		/* Contemporaneamente nel thread principale (il main) inviamo messaggi*/
		while(true) {
			String s = tastiera.readLine();
			client.sendMessage(new Message(nickname, s, Message.MESSAGE));
		}
		
	}

}
